home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: Alpha
/
Whiteline Alpha.iso
/
progtool
/
modula2
/
lpr
/
mogli
/
aes.def
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
MacRoman (detected)
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
Modula Definition
|
1994-09-22
|
44.0 KB
|
1,250 lines
(* --------------------------------------------------------------------- *)
(* AES (Application Environment Service) DEFINITION MODULE *)
(* --------------------------------------------------------------------- *)
(* Einheitliche Modula-2 Schnittstelle zum GEM AES des ATARI ST *)
(* --------------------------------------------------------------------- *)
(* Uwe Brahm *)
(* Johannes Schneiders *)
(* --------------------------------------------------------------------- *)
(* Version 1.0 von Mittwoch dem 1. November 1989 *)
(* --------------------------------------------------------------------- *)
(* Alle Rechte vorbehalten. Insbesondere bleiben Änderungen jeglicher *)
(* Art, sowie Anpassungen an andere Compiler bzw. Computersysteme *)
(* ausschließlich uns vorbehalten. *)
(* Copyright © 1989 by Uwe Brahm, Johannes Schneiders. *)
(* --------------------------------------------------------------------- *)
(* Es wurden alle erdenklichen Maßnahmen getroffen, um die Korrektheit *)
(* dieser Bibliothek zu gewährleisten. Wir können dennoch keine Gewähr *)
(* für die Vollständigkeit und Korrektheit übernehmen und schließen *)
(* deshalb alle Gewährleistungsansprüche, die durch Fehler in der *)
(* Software entstehen, ausdrücklich aus. *)
(* --------------------------------------------------------------------- *)
(* Um einen einheitlichen Standard auch in Zukunft gewährleisten zu *)
(* können, existiert eine zentrale Softwarewartung der Bibliotheken. *)
(* Sollten Sie Fehler entdecken oder Verbesserungsvorschläge haben, *)
(* wenden Sie sich schriftlich an: *)
(* U.Brahm, J.Schneiders, Carlo-Schmid-Straße 15, 6750 Kaiserslautern *)
(* --------------------------------------------------------------------- *)
(* Unterstützte Compiler: *)
(* TDI Modula-2 (Version 3.00) *)
(* SPC Modula-2 (Version 1.42) *)
(* --------------------------------------------------------------------- *)
(* ATARI ST ist ein Warenzeichen der Firma Atari *)
(* GEM ist ein Warenzeichen der Firma Digital Research *)
(* --------------------------------------------------------------------- *)
DEFINITION MODULE AES;
FROM SYSTEM IMPORT ADDRESS;
(* ----------- Konstanten und Typen zu den AES-Bibliotheken ------------ *)
(* -------------------- AES Applikations-Bibliothek -------------------- *)
CONST
(* TapeSpeedScale : INTEGER *)
NormalTapeSpeed = 100;
(* ApplEvents : INTEGER *)
ApplTimerEvent = 0;
ApplButtonEvent = 1;
ApplMouseEvent = 2;
ApplKeyboardEvent = 3;
TYPE
ApplTapeType = RECORD
Filler : INTEGER;
CASE ApplEvent : INTEGER OF
ApplTimerEvent : TimeCount : LONGINT;|
ApplButtonEvent : MouseButtonClicks : INTEGER;
MouseButtons : BITSET;|
ApplMouseEvent : MouseXPos : INTEGER;
MouseYPos : INTEGER;|
ApplKeyboardEvent : KeyboardState : BITSET;
KeyCode : INTEGER;|
END;
END;
(* ---------------------- AES Ereignis-Bibliothek ---------------------- *)
CONST
MaxPipeIndex = 7;
(* Events : BITSET *)
KeyboardEvent = 0;
ButtonEvent = 1;
Mouse1Event = 2;
Mouse2Event = 3;
MessageEvent = 4;
TimerEvent = 5;
(* Message events : INTEGER *)
MenuSelected = 10;
WindowRedraw = 20;
WindowTopped = 21;
WindowClosed = 22;
WindowFulled = 23;
WindowArrowed = 24;
WindowHorizSlided = 25;
WindowVertSlided = 26;
WindowSized = 27;
WindowMoved = 28;
WindowNewTopped = 29;
WindowUntopped = 30; (* Ab GEM 2.0 *)
AccessoryOpened = 40;
AccessoryClosed = 41;
(* ArrowSlideKind : INTEGER *)
SlidePageUp = 0;
SlidePageDown = 1;
ArrowLineUp = 2;
ArrowLineDown = 3;
SlidePageLeft = 4;
SlidePageRight = 5;
ArrowColumnLeft = 6;
ArrowColumnRight = 7;
(* Mouse event modes : INTEGER [0..1] *)
EnterBox = 0;
ExitBox = 1;
(* Mouse buttons : BITSET *)
LeftMouseButton = 0;
RightMouseButton = 1;
(* Control keys : BITSET *)
RightShiftKey = 0;
LeftShiftKey = 1;
ControlKey = 2;
AlternateKey = 3;
CapsLockKey = 4;
(* EventDoubleClick parameter : INTEGER [0..1] *)
GetSpeed = 0;
SetSpeed = 1;
TYPE
(* Sieht kompliziert aus, macht das Arbeiten mit Events aber recht einfach *)
MessageEventType = RECORD
CASE : BOOLEAN OF
TRUE : MessageKind : INTEGER;
ApplicationID : INTEGER;
MessageOversize : INTEGER;
CASE : INTEGER OF
MenuSelected : MenuTitle : INTEGER;
MenuEntry : INTEGER;|
AccessoryOpened,
AccessoryClosed : MenuEntryClose : INTEGER; (* Fehler in ST-GEM *)
MenuEntryOpen : INTEGER;|
WindowRedraw,
WindowTopped,
WindowClosed,
WindowFulled,
WindowSized,
WindowMoved,
WindowNewTopped,
WindowUntopped,
WindowArrowed,
WindowHorizSlided,
WindowVertSlided : WindowHandle : INTEGER;
CASE : INTEGER OF
WindowRedraw : RedrawXPos : INTEGER;
RedrawYPos : INTEGER;
RedrawWidth : INTEGER;
RedrawHeight : INTEGER;|
WindowTopped,
WindowClosed,
WindowFulled,
WindowSized,
WindowMoved,
WindowNewTopped,
WindowUntopped : WindowXPos : INTEGER;
WindowYPos : INTEGER;
WindowWidth : INTEGER;
WindowHeight : INTEGER;|
WindowArrowed : ArrowSlideKind : INTEGER;|
WindowHorizSlided,
WindowVertSlided : SliderPos : INTEGER;|
END;|
ELSE
RestMessagePipe : ARRAY [3..MaxPipeIndex] OF INTEGER;
END;|
ELSE
MessagePipe : ARRAY [0..MaxPipeIndex] OF INTEGER;
END;
END;
(* ------------------------ AES Menü-Bibliothek ------------------------ *)
CONST
(* Show, Check, Enable, Normal : INTEGER [0..1] *)
Off = 0;
On = 1;
(* ----------------------- AES Objekt-Bibliothek ----------------------- *)
CONST
MaxObjectIndex = 1023;
MaxChars = 128;
(* Object Types : INTEGER *)
GraphicBox = 20;
GraphicText = 21;
GraphicBoxText = 22;
GraphicImage = 23;
GraphicUserDef = 24;
GraphicInvisibleBox = 25;
GraphicButton = 26;
GraphicBoxChar = 27;
GraphicString = 28;
GraphicFormattedText = 29;
GraphicFormattedBoxText = 30;
GraphicIcon = 31;
GraphicTitle = 32;
(* Object flags : BITSET *)
Selectable = 0;
Default = 1;
Exit = 2;
Editable = 3;
RadioButton = 4;
LastObject = 5;
TouchExit = 6;
HideTree = 7;
Indirect = 8;
(* Object states : BITSET *)
Selected = 0;
Crossed = 1;
Checked = 2;
Disabled = 3;
Outlined = 4;
Shadowed = 5;
Draw3D = 6; (* Ab GEM 2.0 *)
WhiteBackground = 7; (* Ab GEM 2.0 *)
(* Object colors : INTEGER *)
White = 0;
Black = 1;
Red = 2;
Green = 3;
Blue = 4;
Cyan = 5;
Yellow = 6;
Magenta = 7;
LightWhite = 8;
LightBlack = 9;
LightRed = 10;
LightGreen = 11;
LightBlue = 12;
LightCyan = 13;
LightYellow = 14;
LightMagenta = 15;
(* TedInfo.Font : INTEGER *)
NormalFont = 3;
SmallFont = 5;
(* TedInfo.Justification : INTEGER *)
LeftJustified = 0;
Centered = 1;
RightJustified = 2;
(* EditKind : INTEGER *)
EditStart = 0;
EditInit = 1;
EditChar = 2;
EditEnd = 3;
(* ObjectRedraw : INTEGER [0..1] *)
RedrawOff = 0;
RedrawOn = 1;
TYPE
ObjectType = RECORD
Next : INTEGER;
FirstChild : INTEGER;
LastChild : INTEGER;
Type : INTEGER;
Flags : BITSET;
State : BITSET;
CASE : INTEGER OF
GraphicButton,
GraphicString,
GraphicTitle : TextPointer : POINTER TO ARRAY [0..MaxChars] OF CHAR;|
GraphicText,
GraphicBoxText,
GraphicFormattedText,
GraphicFormattedBoxText : TedInfoPointer : POINTER TO TedInfoType;|
GraphicIcon : IconBlockPointer : POINTER TO IconBlockType;|
GraphicImage : BitBlockPointer : POINTER TO BitBlockType;|
GraphicUserDef : UserBlockPointer : POINTER TO UserBlockType;|
ELSE
Specification : ADDRESS;
END;
XPos : INTEGER;
YPos : INTEGER;
Width : INTEGER;
Height : INTEGER;
END;
TreePointerType = POINTER TO TreeType;
TreeType = ARRAY [0..MaxObjectIndex] OF ObjectType;
TedInfoType = RECORD
TextPointer : POINTER TO ARRAY [0..MaxChars] OF CHAR;
TemplatePointer : POINTER TO ARRAY [0..MaxChars] OF CHAR;
ValidPointer : POINTER TO ARRAY [0..MaxChars] OF CHAR;
Font : INTEGER;
Reserved1 : INTEGER;
Justification : INTEGER;
Color : INTEGER;
Reserved2 : INTEGER;
Thickness : INTEGER;
TextLength : INTEGER;
TemplateLength : INTEGER;
END;
IconBlockType = RECORD
MaskPointer : ADDRESS;
DataPointer : ADDRESS;
TextPointer : POINTER TO ARRAY [0..MaxChars] OF CHAR;
ColorAndChar : INTEGER;
CharX : INTEGER;
CharY : INTEGER;
XPosition : INTEGER;
YPosition : INTEGER;
WidthBytes : INTEGER;
Height : INTEGER;
TextXPosition : INTEGER;
TextYPosition : INTEGER;
TextWidth : INTEGER;
TextHeight : INTEGER;
END;
BitBlockType = RECORD
DataPointer : ADDRESS;
WidthBytes : INTEGER;
Height : INTEGER;
XPosition : INTEGER;
YPosition : INTEGER;
Color : INTEGER;
END;
UserBlockType = RECORD
CodePointer : ADDRESS;
Parameter : LONGINT;
END;
ParameterBlockType = RECORD
TreePointer : TreePointerType;
Object : INTEGER;
PreviousState : BITSET;
CurrentState : BITSET;
XPos : INTEGER;
YPos : INTEGER;
Width : INTEGER;
Height : INTEGER;
ClippingXPos : INTEGER;
ClippingYPos : INTEGER;
ClippingWidth : INTEGER;
ClippingHeight : INTEGER;
Parameter : LONGINT;
END;
(* ---------------------- AES Formular-Bibliothek ---------------------- *)
CONST
(* FormDial Flags : INTEGER [0..3] *)
FormStart = 0;
FormGrow = 1;
FormShrink = 2;
FormFinish = 3;
(* ----------------------- AES Grafik-Bibliothek ----------------------- *)
CONST
(* Mouse forms : INTEGER *)
Arrow = 0;
TextCursor = 1;
HourGlass = 2;
PointHand = 3;
FlatHand = 4;
ThinCross = 5;
ThickCross = 6;
OutlinedCross = 7;
UserDefined = 255;
MouseOff = 256;
MouseOn = 257;
(* Inside/outside Object : INTEGER [0..1] *)
OutSideObject = 0;
InsideObject = 1;
(* Vert/horiz slide : INTEGER [0..1] *)
HorizSlide = 0;
VertSlide = 1;
TYPE
MouseFormType = RECORD
HotSpotXPos : INTEGER;
HotSpotYPos : INTEGER;
Planes : INTEGER;
MaskColor : INTEGER;
PointerColor : INTEGER;
MaskData : ARRAY [0..15] OF INTEGER;
PointerData : ARRAY [0..15] OF INTEGER;
END;
MouseFormPointerType = POINTER TO MouseFormType;
(* ---------------------- AES Fenster-Bibliothek ----------------------- *)
CONST
(* Window elements : BITSET *)
WindowName = 0;
WindowCloser = 1;
WindowFuller = 2;
WindowMover = 3;
WindowInfo = 4;
WindowSizer = 5;
WindowUpArrow = 6;
WindowDownArrow = 7;
WindowVertSlider = 8;
WindowLeftArrow = 9;
WindowRightArrow = 10;
WindowHorizSlider = 11;
(* WindowCalc flags : INTEGER *)
CalculateBorder = 0;
CalculateWork = 1;
(* WindowGet / Set Parameter : INTEGER *)
Kind = 1;
Name = 2;
Info = 3;
WorkXYWH = 4;
CurrXYWH = 5;
PrevXYWH = 6;
FullXYWH = 7;
HorizSlidePos = 8;
VertSlidePos = 9;
Top = 10;
FirstXYWH = 11;
NextXYWH = 12;
Reserved = 13; (* Wir sind ja nicht abergläubig ! *)
NewDesktop = 14;
HorizSlideSize = 15;
VertSlideSize = 16;
WindowScreen = 17;
Attributes = 18; (* Ab GEM 2.0 *)
SizeTop = 19; (* Ab GEM 2.0 *)
(* Fensterkennung des "Desktop" *)
DesktopHandle = 0;
(* WindowUpdate parameters : INTEGER *)
EndWindowUpdate = 0;
BeginWindowUpdate = 1;
EndMouseControl = 2;
BeginMouseControl = 3;
(* ---------------------- AES Resource-Bibliothek ---------------------- *)
CONST
(* ResourceGetAddress Modes : INTEGER *)
RTree = 0;
RObject = 1;
RTedInfo = 2;
RIconBlock = 3;
RBitBlock = 4;
RString = 5;
RImageData = 6;
RObSpec = 7;
RText = 8;
RTemplate = 9;
RValid = 10;
RIconBlkMask = 11;
RIconBlkData = 12;
RIconBlkText = 13;
RBitBlkData = 14;
RFreeString = 15;
RFreeImage = 16;
TYPE
ResourceType = RECORD
Version : INTEGER;
PosOfObjects : INTEGER;
PosOfTedInfos : INTEGER;
PosOfIconBlocks : INTEGER;
PosOfBitBlocks : INTEGER;
PosOfFreeStrings : INTEGER;
PosOfFreeImageData : INTEGER;
PosOfFreeImages : INTEGER;
PosOfTreeTable : INTEGER;
NumberOfObjects : INTEGER;
NumberOfTrees : INTEGER;
NumberOfTedInfos : INTEGER;
NumberOfIconBlocks : INTEGER;
NumberOfBitBlocks : INTEGER;
NumberOfStrings : INTEGER;
NumberOfImages : INTEGER;
Size : INTEGER;
END;
(* ----------------------- AES Shell-Bibliothek ------------------------ *)
CONST
(* ShellWrite Parameter : INTEGER [0..1] *)
ExecuteNot = 0;
Execute = 1;
NotGraphic = 0;
Graphic = 1;
NotGEM = 0;
GEM = 1;
(* ---------------- Prozeduren zu den AES-Bibliotheken ----------------- *)
(* -------------------- AES Applikations-Bibliothek -------------------- *)
PROCEDURE ApplInitialise (VAR Identification : INTEGER);
(* AES-Funktionsnummer: 10 *)
PROCEDURE ApplRead (Identification : INTEGER;
LengthBytes : INTEGER;
VAR MessageEvent : MessageEventType);
(* AES-Funktionsnummer: 11 *)
PROCEDURE ApplWrite (Identification : INTEGER;
LengthBytes : INTEGER;
VAR MessageEvent : MessageEventType);
(* AES-Funktionsnummer: 12 *)
PROCEDURE ApplFind (VAR ApplicationName : ARRAY OF CHAR;
VAR Identification : INTEGER);
(* AES-Funktionsnummer: 13 *)
PROCEDURE ApplTapePlayback (VAR TapeMemory : ARRAY OF ApplTapeType;
NumberOfEvents : INTEGER;
TapeSpeedScale : INTEGER);
(* AES-Funktionsnummer: 14 *)
PROCEDURE ApplTapeRecord (VAR TapeMemory : ARRAY OF ApplTapeType; (* Ab Blitter-TOS *)
NumberOfEvents : INTEGER);
(* AES-Funktionsnummer: 15 *)
PROCEDURE ApplSetDiskDrives (DiskDrives : BITSET;
HardDiskDrives : BITSET;
VAR Return : INTEGER);
(* AES-Funktionsnummer: 16 *)
(* Ab GEM 2.0 *)
PROCEDURE ApplYield (VAR Return : INTEGER);
(* AES-Funktionsnummer: 17 *)
(* Ab GEM 2.0 *)
PROCEDURE ApplExit;
(* AES-Funktionsnummer: 19 *)
(* ---------------------- AES Ereignis-Bibliothek ---------------------- *)
PROCEDURE EventKeyboard (VAR KeyCode : INTEGER);
(* AES-Funktionsnummer: 20 *)
PROCEDURE EventButton (MaxMouseButtonClicks : INTEGER;
MouseButtonMask : BITSET;
MouseButtonState : BITSET;
VAR MouseXPos : INTEGER;
VAR MouseYPos : INTEGER;
VAR MouseButtons : BITSET;
VAR KeyboardState : BITSET;
VAR MouseButtonClicks : INTEGER);
(* AES-Funktionsnummer: 21 *)
PROCEDURE EventMouse (Mode : INTEGER (*0..1*);
BoxXPos : INTEGER;
BoxYPos : INTEGER;
BoxWidth : INTEGER;
BoxHeight : INTEGER;
VAR MouseXPos : INTEGER;
VAR MouseYPos : INTEGER;
VAR MouseButtons : BITSET;
VAR KeyboardState : BITSET);
(* AES-Funktionsnummer: 22 *)
PROCEDURE EventMessage (VAR MessageEvent : MessageEventType);
(* AES-Funktionsnummer: 23 *)
PROCEDURE EventTimer (LowCount : INTEGER;
HighCount : INTEGER);
(* AES-Funktionsnummer: 24 *)
PROCEDURE EventMultiple (EventFlags : BITSET;
MaxMouseButtonClicks : INTEGER;
MouseButtonMask : BITSET;
MouseButtonState : BITSET;
Mode1 : INTEGER (*0..1*);
Box1XPos : INTEGER;
Box1YPos : INTEGER;
Box1Width : INTEGER;
Box1Height : INTEGER;
Mode2 : INTEGER (*0..1*);
Box2XPos : INTEGER;
Box2YPos : INTEGER;
Box2Width : INTEGER;
Box2Height : INTEGER;
LowCount : INTEGER;
HighCount : INTEGER;
VAR Events : BITSET;
VAR MessageEvent : MessageEventType;
VAR MouseXPos : INTEGER;
VAR MouseYPos : INTEGER;
VAR MouseButtons : BITSET;
VAR KeyboardState : BITSET;
VAR KeyCode : INTEGER;
VAR MouseButtonClicks : INTEGER);
(* AES-Funktionsnummer: 25 *)
PROCEDURE EventDoubleClick (NewSpeed : INTEGER (*0..4*);
GetOrSet : INTEGER (*0..1*);
VAR Speed : INTEGER (*0..4*));
(* AES-Funktionsnummer: 26 *)
(* ------------------------ AES Menü-Bibliothek ------------------------ *)
PROCEDURE MenuBar (TreePointer : TreePointerType;
Show : INTEGER (*0..1*));
(* AES-Funktionsnummer: 30 *)
PROCEDURE MenuItemCheck (TreePointer : TreePointerType;
Item : INTEGER;
Check : INTEGER (*0..1*));
(* AES-Funktionsnummer: 31 *)
PROCEDURE MenuItemEnable (TreePointer : TreePointerType;
Item : INTEGER;
Enable : INTEGER (*0..1*));
(* AES-Funktionsnummer: 32 *)
PROCEDURE MenuTitleNormal (TreePointer : TreePointerType;
Title : INTEGER;
Normal : INTEGER (*0..1*));
(* AES-Funktionsnummer: 33 *)
PROCEDURE MenuText (TreePointer : TreePointerType;
Item : INTEGER;
VAR Text : ARRAY OF CHAR);
(* AES-Funktionsnummer: 34 *)
PROCEDURE MenuRegister (ApplicationIdentification : INTEGER;
VAR Text : ARRAY OF CHAR;
VAR MenuIdentification : INTEGER);
(* AES-Funktionsnummer: 35 *)
PROCEDURE MenuUnregister (ApplicationIdentification : INTEGER;
VAR Return : INTEGER);
(* AES-Funktionsnummer: 36 *)
(* Ab GEM 2.0 *)
(* ----------------------- AES Objekt-Bibliothek ----------------------- *)
PROCEDURE ObjectAdd (TreePointer : TreePointerType;
Parent : INTEGER;
Child : INTEGER);
(* AES-Funktionsnummer: 40 *)
PROCEDURE ObjectDelete (TreePointer : TreePointerType;
Object : INTEGER);
(* AES-Funktionsnummer: 41 *)
PROCEDURE ObjectDraw (TreePointer : TreePointerType;
StartObject : INTEGER;
Depth : INTEGER;
ClippingXPos : INTEGER;
ClippingYPos : INTEGER;
ClippingWidth : INTEGER;
ClippingHeight : INTEGER);
(* AES-Funktionsnummer: 42 *)
PROCEDURE ObjectFind (TreePointer : TreePointerType;
StartObject : INTEGER;
Depth : INTEGER;
MouseXPos : INTEGER;
MouseYPos : INTEGER;
VAR Object : INTEGER);
(* AES-Funktionsnummer: 43 *)
PROCEDURE ObjectOffset (TreePointer : TreePointerType;
Object : INTEGER;
VAR XOffset : INTEGER;
VAR YOffset : INTEGER);
(* AES-Funktionsnummer: 44 *)
PROCEDURE ObjectOrder (TreePointer : TreePointerType;
Object : INTEGER;
NewPos : INTEGER);
(* AES-Funktionsnummer: 45 *)
PROCEDURE ObjectEdit (TreePointer : TreePointerType;
Object : INTEGER;
KeyCode : INTEGER;
CharPos : INTEGER;
EditKind : INTEGER;
VAR NewCharPos : INTEGER);
(* AES-Funktionsnummer: 46 *)
PROCEDURE ObjectChange (TreePointer : TreePointerType;
Object : INTEGER;
Reserved : INTEGER (*0*);
ClipXPos : INTEGER;
ClipYPos : INTEGER;
ClipWidth : INTEGER;
ClipHeight : INTEGER;
NewObjectState : BITSET;
Redraw : INTEGER (*0..1*));
(* AES-Funktionsnummer: 47 *)
(* ---------------------- AES Formular-Bibliothek ---------------------- *)
PROCEDURE FormDo (TreePointer : TreePointerType;
StartObject : INTEGER;
VAR ExitObject : INTEGER);
(* AES-Funktionsnummer: 50 *)
PROCEDURE FormDialogue (Flag : INTEGER (*0..3*);
LittleBoxXPos : INTEGER;
LittleBoxYPos : INTEGER;
LittleBoxWidth : INTEGER;
LittleBoxHeight : INTEGER;
BigBoxXPos : INTEGER;
BigBoxYPos : INTEGER;
BigBoxWidth : INTEGER;
BigBoxHeight : INTEGER);
(* AES-Funktionsnummer: 51 *)
PROCEDURE FormAlert (DefaultButton : INTEGER;
AlertText : ARRAY OF CHAR;
VAR ExitButton : INTEGER);
(* AES-Funktionsnummer: 52 *)
PROCEDURE FormError (ErrorNumber : INTEGER;
VAR ExitButton : INTEGER);
(* AES-Funktionsnummer: 53 *)
PROCEDURE FormCenter (TreePointer : TreePointerType;
VAR XPos : INTEGER;
VAR YPos : INTEGER;
VAR Width : INTEGER;
VAR Height : INTEGER);
(* AES-Funktionsnummer: 54 *)
PROCEDURE FormKeyboard (TreePointer : TreePointerType;
Object : INTEGER;
Reserved : INTEGER (*0*);
KeyCode : INTEGER;
VAR KeyCodeReturn : INTEGER;
VAR NextEditObject : INTEGER;
VAR ObjectReturn : INTEGER);
(* AES-Funktionsnummer: 55 *)
PROCEDURE FormButton (TreePointer : TreePointerType;
Object : INTEGER;
MouseButtonClicks : INTEGER;
VAR NextObject : INTEGER;
VAR ObjectReturn : INTEGER);
(* AES-Funktionsnummer: 56 *)
(* ----------------------- AES Grafik-Bibliothek ----------------------- *)
PROCEDURE GrafRubberBox (XPos : INTEGER;
YPos : INTEGER;
MinWidth : INTEGER;
MinHeight : INTEGER;
VAR FinishWidth : INTEGER;
VAR FinishHeight : INTEGER);
(* AES-Funktionsnummer: 70 *)
PROCEDURE GrafDragBox (Width : INTEGER;
Height : INTEGER;
StartXPos : INTEGER;
StartYPos : INTEGER;
BoundXPos : INTEGER;
BoundYPos : INTEGER;
BoundWidth : INTEGER;
BoundHeight : INTEGER;
VAR FinishX : INTEGER;
VAR FinishY : INTEGER);
(* AES-Funktionsnummer: 71 *)
PROCEDURE GrafMoveBox (Width : INTEGER;
Height : INTEGER;
StartXPos : INTEGER;
StartYPos : INTEGER;
FinishXPos : INTEGER;
FinishYPos : INTEGER);
(* AES-Funktionsnummer: 72 *)
PROCEDURE GrafGrowBox (StartXPos : INTEGER;
StartYPos : INTEGER;
StartWidth : INTEGER;
StartHeight : INTEGER;
FinishXPos : INTEGER;
FinishYPos : INTEGER;
FinishWidth : INTEGER;
FinishHeight : INTEGER);
(* AES-Funktionsnummer: 73 *)
PROCEDURE GrafShrinkBox (FinishXPos : INTEGER;
FinishYPos : INTEGER;
FinishWidth : INTEGER;
FinishHeight : INTEGER;
StartXPos : INTEGER;
StartYPos : INTEGER;
StartWidth : INTEGER;
StartHeight : INTEGER);
(* AES-Funktionsnummer: 74 *)
PROCEDURE GrafWatchBox (TreePointer : TreePointerType;
Object : INTEGER;
InObjectState : BITSET;
OutObjectState : BITSET;
VAR InOutside : INTEGER);
(* AES-Funktionsnummer: 75 *)
PROCEDURE GrafSlideBox (TreePointer : TreePointerType;
Parent : INTEGER;
Object : INTEGER;
VertHorizSlide : INTEGER (*0..1*);
VAR SliderPos : INTEGER);
(* AES-Funktionsnummer: 76 *)
PROCEDURE GrafHandle (VAR CharWidth : INTEGER;
VAR CharHeight : INTEGER;
VAR CellWidth : INTEGER;
VAR CellHeight : INTEGER;
VAR Return : INTEGER);
(* AES-Funktionsnummer: 77 *)
PROCEDURE GrafMouse (MouseNumber : INTEGER;
MouseFormPointer : MouseFormPointerType);
(* AES-Funktionsnummer: 78 *)
PROCEDURE GrafMouseKeyboardState (VAR MouseXPos : INTEGER;
VAR MouseYPos : INTEGER;
VAR MouseButtons : BITSET;
VAR KeyboardState : BITSET);
(* AES-Funktionsnummer: 79 *)
(* ------------------- AES Zwischenablage-Bibliothek ------------------- *)
PROCEDURE ScrapRead (VAR Path : ARRAY OF CHAR);
(* AES-Funktionsnummer: 80 *)
PROCEDURE ScrapWrite (Path : ARRAY OF CHAR);
(* AES-Funktionsnummer: 81 *)
PROCEDURE ScrapClear (VAR Return : INTEGER);
(* AES-Funktionsnummer: 82 *)
(* AB GEM 2.0 *)
(* -------------------- AES Dateiauswahl-Bibliothek -------------------- *)
PROCEDURE FileSelectorInput (VAR Path : ARRAY OF CHAR;
VAR Select : ARRAY OF CHAR;
VAR ExitButton : INTEGER);
(* AES-Funktionsnummer: 90 *)
PROCEDURE FileSelectorTitleInput (VAR Path : ARRAY OF CHAR; (* Ab TOS 1.4 *)
VAR Select : ARRAY OF CHAR;
VAR ExitButton : INTEGER;
VAR Label : ARRAY OF CHAR);
(* AES-Funktionsnummer: 91 *)
(* ---------------------- AES Fenster-Bibliothek ----------------------- *)
PROCEDURE WindowCreate (Kind : BITSET;
MinXPos : INTEGER;
MinYPos : INTEGER;
MaxWidth : INTEGER;
MaxHeight : INTEGER;
VAR Handle : INTEGER);
(* AES-Funktionsnummer: 100 *)
PROCEDURE WindowOpen (Handle : INTEGER;
XPos : INTEGER;
YPos : INTEGER;
Width : INTEGER;
Height : INTEGER);
(* AES-Funktionsnummer: 101 *)
PROCEDURE WindowClose (Handle : INTEGER);
(* AES-Funktionsnummer: 102 *)
PROCEDURE WindowDelete (Handle : INTEGER);
(* AES-Funktionsnummer: 103 *)
PROCEDURE WindowGet (Handle : INTEGER;
Mode : INTEGER;
VAR Data1 : INTEGER;
VAR Data2 : INTEGER;
VAR Data3 : INTEGER;
VAR Data4 : INTEGER);
(* AES-Funktionsnummer: 104 *)
PROCEDURE WindowSet (Handle : INTEGER;
Mode : INTEGER;
Data1 : INTEGER;
Data2 : INTEGER;
Data3 : INTEGER;
Data4 : INTEGER);
(* AES-Funktionsnummer: 105 *)
PROCEDURE WindowFind (MouseXPos : INTEGER;
MouseYPos : INTEGER;
VAR Handle : INTEGER);
(* AES-Funktionsnummer: 106 *)
PROCEDURE WindowUpdate (BeginEnd : INTEGER);
(* AES-Funktionsnummer: 107 *)
PROCEDURE WindowCalc (Mode : INTEGER;
Kind : BITSET;
InXPos : INTEGER;
InYPos : INTEGER;
InWidth : INTEGER;
InHeight : INTEGER;
VAR OutXPos : INTEGER;
VAR OutYPos : INTEGER;
VAR OutWidth : INTEGER;
VAR OutHeight : INTEGER);
(* AES-Funktionsnummer: 108 *)
PROCEDURE WindowNew; (* Ab TOS 1.4 *)
(* AES-Funktionsnummer: 109 *)
(* ---------------------- AES Resource-Bibliothek ---------------------- *)
PROCEDURE ResourceLoad (Path : ARRAY OF CHAR);
(* AES-Funktionsnummer: 110 *)
PROCEDURE ResourceFree;
(* AES-Funktionsnummer: 111 *)
PROCEDURE ResourceGetAddress (Mode : INTEGER;
Index : INTEGER;
VAR Address : ADDRESS);
(* AES-Funktionsnummer: 112 *)
PROCEDURE ResourceSetAddress (Mode : INTEGER;
Index : INTEGER;
Address : ADDRESS);
(* AES-Funktionsnummer: 113 *)
PROCEDURE ResourceObjectFix (TreePointer : TreePointerType;
Object : INTEGER);
(* AES-Funktionsnummer: 114 *)
(* ----------------------- AES Shell-Bibliothek ------------------------ *)
PROCEDURE ShellRead (VAR CommandLine : ARRAY OF CHAR;
VAR Path : ARRAY OF CHAR);
(* AES-Funktionsnummer: 120 *)
PROCEDURE ShellWrite (ExecuteApplication : INTEGER (*0..1*);
GraphicApplication : INTEGER (*0..1*);
GEMApplication : INTEGER (*0..1*);
CommandLine : ARRAY OF CHAR;
Path : ARRAY OF CHAR);
(* AES-Funktionsnummer: 121 *)
PROCEDURE ShellGet (LengthBytes : INTEGER;
VAR EnvironmentBuffer : ARRAY OF CHAR;
VAR ReadBytes : INTEGER);
(* AES-Funktionsnummer: 122 *)
PROCEDURE ShellPut (LengthBytes : INTEGER;
VAR EnvironmentBuffer : ARRAY OF CHAR;
VAR WrittenBytes : INTEGER);
(* AES-Funktionsnummer: 123 *)
PROCEDURE ShellFind (VAR Path : ARRAY OF CHAR);
(* AES-Funktionsnummer: 124 *)
PROCEDURE ShellEnvironment (VAR DOSVariableValue : ARRAY OF CHAR;
VAR DOSVariable : ARRAY OF CHAR);
(* AES-Funktionsnummer: 125 *)
PROCEDURE ShellReadDefault (VAR Command : ARRAY OF CHAR;
VAR Directory : ARRAY OF CHAR;
VAR Return : INTEGER);
(* AES-Funktionsnummer: 126 *)
(* Ab GEM 2.0 *)
PROCEDURE ShellWriteDefault (Command : ARRAY OF CHAR;
Directory : ARRAY OF CHAR;
VAR Return : INTEGER);
(* AES-Funktionsnummer: 127 *)
(* Ab GEM 2.0 *)
(* ------------------- AES Extra-Grafik Bibliothek --------------------- *)
PROCEDURE ExtraGrafCalculateSteps (StartWidth : INTEGER;
StartHeight : INTEGER;
FinishXPos : INTEGER;
FinishYPos : INTEGER;
FinishWidth : INTEGER;
FinishHeight : INTEGER;
VAR CenteredXPos : INTEGER;
VAR CenteredYPos : INTEGER;
VAR StepCount : INTEGER;
VAR StepWidth : INTEGER;
VAR StepHeight : INTEGER;
VAR Return : INTEGER);
(* AES-Funktionsnummer: 130 *)
(* Ab GEM 2.0 *)
PROCEDURE ExtraGraf2Box (StepCount : INTEGER;
StepWidth : INTEGER;
StepHeight : INTEGER;
DoubleSteps : INTEGER (*0..1*);
OnlyCorners : INTEGER (*0..1*);
StartXPos : INTEGER;
StartYPos : INTEGER;
StartWidth : INTEGER;
StartHeight : INTEGER;
VAR Return : INTEGER);
(* AES-Funktionsnummer: 131 *)
(* Ab GEM 2.0 *)
(* -------------- AES Globale Variablen & Aufrufprozedur --------------- *)
CONST
MaxIntegerInSize = 17;
MaxIntegerOutSize = 8;
MaxAddressInSize = 3;
MaxAddressOutSize = 2;
TYPE
GlobalType = RECORD
ApplicationVersion : INTEGER;
ApplicationCount : INTEGER;
ApplicationIdentification : INTEGER;
ApplicationPrivate : LONGINT;
ApplicationTreePointer : ADDRESS;
ApplicationMemoryPointer : ADDRESS;
ApplicationMemoryLength : INTEGER;
ApplicationPlanes : INTEGER;
ApplicationReserved : LONGINT;
ApplicationDiskDrives : BITSET; (* Erst ab Blitter-TOS *)
ApplicationHarddiskDrives : BITSET; (* Erst ab GEM 2.0 *)
END;
ControlType = RECORD
Opcode : INTEGER;
IntegerInSize : INTEGER;
IntegerOutSize : INTEGER;
AddressInSize : INTEGER;
AddressOutSize : INTEGER;
END;
IntegerInType = ARRAY [0..MaxIntegerInSize - 1] OF INTEGER;
IntegerOutType = ARRAY [0..MaxIntegerOutSize - 1] OF INTEGER;
AddressInType = ARRAY [0..MaxAddressInSize - 1] OF ADDRESS;
AddressOutType = ARRAY [0..MaxAddressOutSize - 1] OF ADDRESS;
ParameterType = RECORD
Control : POINTER TO ControlType;
Global : POINTER TO GlobalType;
IntegerIn : POINTER TO IntegerInType;
IntegerOut : POINTER TO IntegerOutType;
AddressIn : POINTER TO AddressInType;
AddressOut : POINTER TO AddressOutType;
END;
VAR
Parameters : ParameterType;
Global : GlobalType;
Control : ControlType;
IntegerIn : IntegerInType;
IntegerOut : IntegerOutType;
AddressIn : AddressInType;
AddressOut : AddressOutType;
CallResult : INTEGER;
PROCEDURE GemCall (Opcode : INTEGER;
IntegerInSize : INTEGER;
IntegerOutSize : INTEGER;
AddressInSize : INTEGER;
AddressOutSize : INTEGER;
VAR CallResult : INTEGER);
END AES.